﻿//#define _CRT_SECURE_NO_WARNINGS 1
//
//#include "SeqList.h"
//
//
//
//void TestSeqList2()
//{
//
//	//SL* sl = NULL;
//	//SLInit(sl);assert检查，为空指针时会直接报错
//	SL sl;
//	SLInit(&sl);
//	SLPushBack(&sl, 1);
//	SLPushBack(&sl, 2);
//	SLPushBack(&sl, 3);
//	SLPushBack(&sl, 4);
//
//	SLPrint(&sl);
//
//	SLPopBack(&sl);
//	SLPopBack(&sl);
//	SLPopBack(&sl);
//	SLPopBack(&sl);
//	SLPopBack(&sl);
//
//	SLPrint(&sl);
//
//	SLPushBack(&sl, 1);
//	SLPushBack(&sl, 2);
//
//	SLDestroy(&sl);
//	
//}
//
//void TestSeqList1()
//{
//	SL s1;
//	SLInit(&s1);
//
//	SLPushFront(&s1, 1);
//	SLPushFront(&s1, 2);
//	SLPushFront(&s1, 3);
//	SLPushFront(&s1, 4);
//
//
//	SLPrint(&s1);
//	 
//	SLPopFront(&s1);
//	SLPopFront(&s1);
//	SLPopFront(&s1);
//	SLPopFront(&s1);
//	SLPopFront(&s1);
//
//	SLPushBack(&s1, 1);
//	SLPrint(&s1);
//
//
//	SLDestroy(&s1);
//}
//
//void TestSeqList5()
//{
//	SL sl;
//	SLInit(&sl);
//	SLPushBack(&sl, 1);
//	SLPushBack(&sl, 2);
//	SLPushBack(&sl, 3);
//	SLPushBack(&sl, 4);
//	SLPushBack(&sl, 5);
//	SLPrint(&sl);
//	
//	SLErase(&sl, 2);
//	SLPrint(&sl);
//
//	SLErase(&sl, 2);
//	SLPrint(&sl);
//
//	SLErase(&sl, 2);
//	SLPrint(&sl);
//
//	SLDestroy(&sl);
//}
//
//void TestSeqList6()
//{
//	SL sl;
//	SLInit(&sl);
//	SLPushBack(&sl, 1);
//	SLPushBack(&sl, 2);
//	SLPushBack(&sl, 3);
//	SLPushBack(&sl, 4);
//	SLPushBack(&sl, 5);
//	SLPushBack(&sl, 5);
//	SLPushBack(&sl, 5);
//	SLPushBack(&sl, 5);
//	SLPrint(&sl);
//
//	int pos = SLFind(&sl, 5, 0);
//	if (pos != -1)
//	{
//		SLErase(&sl, pos);
//	}
//	SLPrint(&sl);
//
//	//删除顺序表所有的5
//
//	pos = SLFind(&sl, 5, 0);
//	while (pos != -1)
//	{
//		SLErase(&sl, pos);
//
//		pos = SLFind(&sl, 5, pos);
//	}
//	SLPrint(&sl);
//
//	SLDestroy(&sl);
//
//}
//
//void menu()
//{
//	printf("****************************************\n");
//	printf("1.尾插数据 2.尾删数据\n");
//	printf("3.头插数据 4.头删数据\n");
//	printf("5.打印数据 -1.退出\n");
//	printf("****************************************\n");
//}
//
//int main()
//{
//	/*TestSeqList6();*/
//	SL s;
//	SLInit(&s);
//	int option = 0;
//	int val = 0;
//	do
//	{
//		menu();
//		printf("请输入你的操作:>");
//		scanf("%d", &option);
//		switch (option)
//		{
//		case 1:
//			printf("请依次输入数据，-1结束");
//			scanf("%d", &val);
//			while (val != -1)
//			{
//				SLPushBack(&s, val);
//				scanf("%d", &val);
//			}
//		case 2:
//			SLPopBack(&s);
//			break;
//		case 3:
//			break;
//		case 4:
//			break;
//		case 5:
//			SLPrint(&s);
//			break;
//		default:
//			break;
//		}
//	} while (option != -1);
//	SLDestroy(&s);
//
//
//	//int a[10] = { 0 };
//
//	//越界读，基本不会被检查出来
//	//printf("%d\n", a[9]);
//	//a[10] = 0;
//
//
//	return 0;
//}
//
//


//#define MaxSize 50
//
//typedef struct
//{
//	int data[MaxSize];
//	int length;//顺序表当前长度
//}SqList;//顺序表类型定义
//
//bool ListInsert(SqList& L, int i, int e)
//{
//	if (i < 1 || i > L.length + 1)
//		return false;
//
//	if (length >= MaxSize)
//		return false;
//}




#include"SeqList.h"

void TestList1()
{
	LTNode* phead = LTInit();
	LTPushBack(phead, 1);
	LTPushBack(phead, 2);
	LTPushBack(phead, 3);
	LTPushBack(phead, 4);
	LTPushBack(phead, 5);
	LTPrint(phead);

	LTPopBack(phead);
	LTPrint(phead);
	LTPopBack(phead);
	LTPrint(phead);
	LTPopBack(phead);
	LTPrint(phead);
	LTPopBack(phead);
	LTPrint(phead);
	LTPopBack(phead);
	LTPrint(phead);

	//LTPopBack(phead);
}


int main()
{
	TestList1();

	return 0;
}